Response prediction for electronic communications

ABSTRACT

Systems, methods, and apparatuses are described herein for performing sentiment analysis on electronic communications relating to one or more image-based communications methods, such as emoji. Message data may be received. The message data may correspond to a message that is intended to be sent but has not yet been sent to an application. Using a first machine learning model, one or more subsets of the plurality of emoji may be determined. The one or more subsets of the plurality of emoji may comprise one or more different types and quantities of emoji, and may each correspond to the same or a different sentiment. Using a second machine learning model, one or more emojis may be selected from the one or more subsets. The one or more emojis selected may correspond to responses to the message.

FIELD OF USE

Aspects of the disclosure relate generally to electronic communications,and more specifically to using machine learning to determine predictedresponses to electronic communications.

BACKGROUND

Electronic communications increasingly rely on non-textual content. Forexample, a chat application executing on a computing device may permitusers to send messages comprising textual content, one or more images,one or more audio samples, or the like. Emojis, also referred to asemoticons, are examples of such images. Users may include emojis inmessages and/or in response to messages, such that emojis may containsignificant amounts of information about users' sentiment regarding aparticular topic.

The variety of textual and non-textual content in electroniccommunications can make determining likely responses to a message (e.g.,one that has not yet been posted on a communications application)particularly difficult. The nature of images and/or audio samplesattached to textual content may indicate that the otherwise innocuoustextual content may be sarcastic and/or might generate unexpecteddisdain from those responding to the textual content. For example, aparticularly unflattering image of a fast food item along with themessage “I love fast food” may indicate sarcasm and/or might generatenegative feedback from other users. As another example, a messagestating “Tell me what you think about this brand” followed by thumbsdown may encourage negative sentiment about the brand. As such, amessage intending to be friendly and/or innocuous might inadvertentlytrigger other users to provide negative responses.

Aspects described herein may address these and other problems, andgenerally improve the quality, efficiency, and speed of determininglikely responses (e.g., emoji responses) to messages that have not yetbeen made public.

SUMMARY

The following presents a simplified summary of various aspects describedherein. This summary is not an extensive overview, and is not intendedto identify key or critical elements or to delineate the scope of theclaims. The following summary merely presents some concepts in asimplified form as an introductory prelude to the more detaileddescription provided below. Corresponding apparatus, systems, andcomputer-readable media are also within the scope of the disclosure.

Aspects described herein relate to performing sentiment analysis onelectronic communications relating to one or more image-basedcommunications methods, such as emoji. A computing device may receivedata corresponding to a message. The message may be intended to be sentbut might not yet have been sent to an application executing on a secondcomputing device. The computing device may process, using a firstmachine learning model, the message to determine one or more subsets ofa plurality of emojis. The one or more subsets of the plurality ofemojis may correspond to one or more predicted responses to the message.At least one of the one or more subsets may correspond to at least twodifferent emoji types. The first machine learning model may have beentrained to group the one or more subsets of the plurality of emojisaccording to sentiment associated with the at least two different emojitypes. The computing device may select, using one or more second machinelearning models and based on the message, one or more second emojis fromthe one or more subsets of the plurality of emojis. The one or moresecond emojis may correspond to a predicted response to the message. Theone or more second machine learning models may be trained based on ahistory of responses to second messages. The computing device maytransmit the one or more second emojis.

These features, along with many others, are discussed in greater detailbelow.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is described by way of example and not limited inthe accompanying figures in which like reference numerals indicatesimilar elements and in which:

FIG. 1 depicts an example of a computing device that may be used inimplementing one or more aspects of the disclosure in accordance withone or more illustrative aspects discussed herein;

FIG. 2 depicts an example deep neural network architecture for a modelaccording to one or more aspects of the disclosure;

FIG. 3 shows a communications application with messages and emojis; and

FIG. 4 shows a flow chart of a process for determining predictedresponses to electronic communications according to one or more aspectsof the disclosure.

DETAILED DESCRIPTION

In the following description of the various embodiments, reference ismade to the accompanying drawings, which form a part hereof, and inwhich is shown by way of illustration various embodiments in whichaspects of the disclosure may be practiced. It is to be understood thatother embodiments may be utilized and structural and functionalmodifications may be made without departing from the scope of thepresent disclosure. Aspects of the disclosure are capable of otherembodiments and of being practiced or being carried out in various ways.In addition, it is to be understood that the phraseology and terminologyused herein are for the purpose of description and should not beregarded as limiting. Rather, the phrases and terms used herein are tobe given their broadest interpretation and meaning.

By way of introduction, aspects discussed herein may relate to methodsand techniques for predicting responses to electronic communications.Electronic communications, like other forms of communications, can bedifficult to predict. For example, content intending to be innocuous maytrigger users to respond negatively due to, for example, the context,time, and/or manner in which the content is posted. This is undesirablefor companies, as content intended to promote the company may in factharm the company. There is thus a strong demand for methods to predictlikely responses to messages that have not yet been posted online in amanner which allows users to avoid circumstances where those messagesmight encourage undesirable responses.

Systems as described herein may predict responses to electroniccommunications and, particularly, predict emoji responses to messagesintended for an application. A computing device may receive datacorresponding to a message. The message may be intended to be sent butmight not yet have been sent to an application executing on a secondcomputing device. The message may comprise textual content, one or moreemojis, and/or other content. The application may be a messagingapplication, and the message may be intended to be posted in theapplication. The computing device may process, using a first machinelearning model, the message to determine one or more subsets of aplurality of emojis. The one or more subsets of the plurality of emojismay correspond to one or more predicted responses to the message. Atleast one of the one or more subsets may correspond to at least twodifferent emoji types. A first emoji type of the at least two differentemoji types corresponds to a positive reaction, and a second emoji typeof the at least two different emoji types corresponds to a negativereaction. The first machine learning model may have been trained togroup the one or more subsets of the plurality of emojis according tosentiment associated with the at least two different emoji types. Thefirst machine learning model may have been trained using a history ofsecond responses to second messages in one or more applications.Processing the message may comprise weighting each of the plurality ofemojis based on a quantity of the plurality of emojis that correspond toan emoji type and/or a sentiment corresponding to the emoji type.Processing the message may comprise determining that a first emoji ofthe plurality of emojis belongs to a first subset of the one or moresubsets based on one or more second emojis of the plurality of emojis.At least one of the one or more subsets may correspond to a firstquantity of a first emoji type of the at least two different emojitypes, and a second quantity of a second emoji type of the at least twodifferent emoji types. The computing device may select, using one ormore second machine learning models and based on the message, one ormore second emojis from the one or more subsets of the plurality ofemojis. The one or more second emojis may correspond to a predictedresponse to the message. The one or more second machine learning modelsmay be trained based on a history of responses to second messages. Theone or more second machine learning models are trained using a historyof second responses from one or more second applications different thanthe application. The computing device may transmit the one or moresecond emojis. The computing device may transmit the one or more secondemojis by transmitting a confidence value associated with each of theone or more second emojis. The computing device may transmit the one ormore second emojis by transmitting a count of the one or more secondemojis.

Systems and methods described herein improve the functioning ofcomputers by improving the method in which computing devices can processand understand electronic communications. In particular, the systems andmethods described herein improve the ability of computers to processcomplex and nuanced communications data and to determine, based on thatdata, predicted responses to the communications. While machine learningmodels may be trained on a variety of different data sets, conventionalmachine learning models are still ill-equipped to learn about the nuanceof human communications, particularly electronic communications whichprovide communication methods above and beyond mere text (e.g., emoji).By, among other steps, determining one or more subsets of the pluralityof emoji, the system described herein allows such machine learningmodels to better understand the sentiment of electronic communicationsin a nuanced manner. Accordingly, the accuracy of response predictionperformed by machine learning models may be improved, and the resultsbased on results from such machine learning models (e.g., predictedresponses to a message that has not yet been posted to a communicationsapplication) may be improved.

FIG. 1 illustrates one example of a computing device 101 that may beused to implement one or more illustrative aspects discussed herein. Forexample, computing device 101 may, in some embodiments, implement one ormore aspects of the disclosure by reading and/or executing instructionsand performing one or more actions based on the instructions. In someembodiments, computing device 101 may represent, be incorporated in,and/or include various devices such as a desktop computer, a computerserver, a mobile device (e.g., a laptop computer, a tablet computer, asmart phone, any other types of mobile computing devices, and the like),and/or any other type of data processing device.

Computing device 101 may, in some embodiments, operate in a standaloneenvironment. In others, computing device 101 may operate in a networkedenvironment. As shown in FIG. 1 , various network nodes 101, 105, 107,and 109 may be interconnected via a network 103, such as the Internet.Other networks may also or alternatively be used, including privateintranets, corporate networks, LANs, wireless networks, personalnetworks (PAN), and the like. Network 103 is for illustration purposesand may be replaced with fewer or additional computer networks. A localarea network (LAN) may have one or more of any known LAN topology andmay use one or more of a variety of different protocols, such asEthernet. Devices 101, 105, 107, 109 and other devices (not shown) maybe connected to one or more of the networks via twisted pair wires,coaxial cable, fiber optics, radio waves or other communication media.

As seen in FIG. 1 , computing device 101 may include a processor 111,RAM 113, ROM 115, network interface 117, input/output interfaces 119(e.g., keyboard, mouse, display, printer, etc.), and memory 121.Processor 111 may include one or more computer processing units (CPUs),graphical processing units (GPUs), and/or other processing units such asa processor adapted to perform computations associated with machinelearning. I/O 119 may include a variety of interface units and drivesfor reading, writing, displaying, and/or printing data or files. I/O 119may be coupled with a display such as display 120. Memory 121 may storesoftware for configuring computing device 101 into a special purposecomputing device in order to perform one or more of the variousfunctions discussed herein. Memory 121 may store operating systemsoftware 123 for controlling overall operation of computing device 101,control logic 125 for instructing computing device 101 to performaspects discussed herein, machine learning software 127, training setdata 129, and other applications 131. Control logic 125 may beincorporated in and may be a part of machine learning software 127. Inother embodiments, computing device 101 may include two or more of anyand/or all of these components (e.g., two or more processors, two ormore memories, etc.) and/or other components and/or subsystems notillustrated here.

Devices 105, 107, 109 may have similar or different architecture asdescribed with respect to computing device 101. Those of skill in theart will appreciate that the functionality of computing device 101 (ordevice 105, 107, 109) as described herein may be spread across multipledata processing devices, for example, to distribute processing loadacross multiple computers, to segregate transactions based on geographiclocation, user access level, quality of service (QoS), etc. For example,devices 101, 105, 107, 109, and others may operate in concert to provideparallel computing features in support of the operation of control logic125 and/or software 127.

One or more aspects discussed herein may be embodied in computer-usableor readable data and/or computer-executable instructions, such as in oneor more program modules, executed by one or more computers or otherdevices as described herein. Generally, program modules includeroutines, programs, objects, components, data structures, etc. thatperform particular tasks or implement particular abstract data typeswhen executed by a processor in a computer or other device. The modulesmay be written in a source code programming language that issubsequently compiled for execution, or may be written in a scriptinglanguage such as (but not limited to) HTML or XML. The computerexecutable instructions may be stored on a computer readable medium suchas a hard disk, optical disk, removable storage media, solid statememory, RAM, etc. As will be appreciated by one of skill in the art, thefunctionality of the program modules may be combined or distributed asdesired in various embodiments. In addition, the functionality may beembodied in whole or in part in firmware or hardware equivalents such asintegrated circuits, field programmable gate arrays (FPGA), and thelike. Particular data structures may be used to more effectivelyimplement one or more aspects discussed herein, and such data structuresare contemplated within the scope of computer executable instructionsand computer-usable data described herein. Various aspects discussedherein may be embodied as a method, a computing device, a dataprocessing system, or a computer program product.

Having discussed several examples of computing devices which may be usedto implement some aspects as discussed further below, discussion willnow turn to a method for using stochastic gradient boosting techniquesto train deep neural networks.

FIG. 2 illustrates an example deep neural network architecture 200. Anartificial neural network may be a collection of connected nodes, withthe nodes and connections each having assigned weights used to generatepredictions. Each node in the artificial neural network may receiveinput and generate an output signal. The output of a node in theartificial neural network may be a function of its inputs and theweights associated with the edges. Ultimately, the trained model may beprovided with input beyond the training set and used to generatepredictions regarding the likely results. Artificial neural networks mayhave many applications, including object classification, imagerecognition, speech recognition, natural language processing, textrecognition, regression analysis, behavior modeling, and others.

An artificial neural network may have an input layer 210, one or morehidden layers 220, and an output layer 230. A deep neural network, asused herein, may be an artificial network that has more than one hiddenlayer. Illustrated network architecture 200 is depicted with threehidden layers, and thus may be considered a deep neural network. Thenumber of hidden layers employed in deep neural network 200 may varybased on the particular application and/or problem domain. For example,a network model used for image recognition may have a different numberof hidden layers than a network used for speech recognition. Similarly,the number of input and/or output nodes may vary based on theapplication. Many types of deep neural networks are used in practice,such as convolutional neural networks, recurrent neural networks, feedforward neural networks, combinations thereof, and others.

During the model training process, the weights of each connection and/ornode may be adjusted in a learning process as the model adapts togenerate more accurate predictions on a training set. The weightsassigned to each connection and/or node may be referred to as the modelparameters. The model may be initialized with a random or white noiseset of initial model parameters. The model parameters may then beiteratively adjusted using, for example, stochastic gradient descentalgorithms that seek to minimize errors in the model.

Discussion will now turn to an example of applications which permitelectronic communications using non-textual content, such as emoji. FIG.3 shows a communications application 300, which in the illustrativeexample shown in FIG. 3 comprises a message 301 from a first user and areply 303 to the message 301 from a second user. The message 301 isassociated with a first plurality of emoji 302 and, in particular, threesmiley faces, four neutral faces, one sad face, and two lightning bolts.The message 301 also comprises a third plurality of emoji 305 in thetextual content of the message 301. Specifically, the third plurality ofemoji 305 comprises a neutral face. The reply 303 is associated with asecond plurality of emoji 304 and, in particular, zero smiley faces, oneneutral face, zero sad faces, and four lightning bolts. Thecommunications application 300 may execute on one or more computingdevices, such as the network nodes 101, 105, 107, and 109, and/or maycommunicate via a network, such as the network 103.

The communications application 300 shown in FIG. 3 is an example: anyapplication which permits communications between two or more users maybe used in accordance with the features described herein. For example,the communications application 300 may be a messaging application thatfacilitates the sending and/or receipt of messages between two or moreusers. The communications application 300 may be executed on asmartphone, in a web browser, on a personal computer, and/or on or viaany form of computing device. For example, the communicationsapplication 300 may be a social networking service website.

Messages and/or replies, such as the message 301 and the reply 303, maybe any combination of text, images, video, and/or audio. For example,the message 301 may comprise text relating to a restaurant, an image inthe message 301 may show the food the user ate at the restaurant, and avideo in the message 301 may show the ambiance of the restaurant. Suchcontent may include the third plurality of emojis 305. Accordingly, themessage 301 and the reply 303 may be any combination of audiovisualand/or textual content, including one or more emojis. Users may providemessages and/or replies in any manner specified by the communicationsapplication 300. For example, the reply 303 may comprise additionalemoji (not shown in FIG. 3 ).

Emoji, such as the first plurality of emoji 302 and/or the secondplurality of emoji 304, may be any images which may be selected by oneor more users as part of formulating a message and/or reply. Forexample, an emoji may correspond to a reaction, by one or more users, toa message and/or reply. Emoji may comprise small images (e.g., icons)which represent concepts such as plants (e.g., a flower), animals (e.g.,a cat), emotions (e.g., a thumbs up), or the like. Multiple differenttypes of emoji may be associated with the same message and/or reply, andmultiple of the same type of emoji may be associated with the samemessage and/or reply. For example, as shown in FIG. 3 , multiple usersmay respond to the same content (e.g., the message 301) with multipledifferent types of emoji. As another example, as also shown in FIG. 3 ,a user may respond to a message with a reply (e.g., the reply 303), andthat reply may itself comprise one or more emoji.

The number, nature, and/or use of emoji may be specified by one or morestandards. For example, the Unicode standard has defined a number ofemoji comprising different symbols, such as faces, weather, vehicles andbuildings, food and drink, animals and plants, or icons that representemotions, feelings, and activities. These emoji may correspond to anarbitrary number of other characters (e.g., a colon and half of aparentheses, which may form a smiley face) which may be converted byapplications into a graphical representation of an emoji.

The number, nature, and/or use of emoji may be the same or differentbased on which device is used to input such emoji. For example,different smartphone manufacturers may use different styles of emojiwhich may correspond to the same or different sentiments. Differentemoji (e.g., different forms of the same emoji, such as a thumbs upemoji from a laptop and a thumbs up emoji from a smartphone) may betreated the same (e.g., in that they represent the same sentiment) ordifferently (e.g., that they may be used to determine sentiment ofgroups of users based on which type of computing device used to enterthe emoji).

It may be difficult to discern the sentiment of a message, particularlygiven the complexity of human interaction. As one example, the message“good luck” might be intended to be positive (that is, meaning that thesender intends the recipient to have good luck) or negative (that is,for example, meaning that the sender might disagree with a plan of therecipient). As another example, without more information, it is notclear what any of the emoji in the first plurality of emoji 302 and/orthe second plurality of emoji 304 mean, as in both cases the emoji areabstract shapes. As another example, the message 301 states “Yesterday,I went to [RESTAURANT] and ate [FOOD]” along with the neutral smileyface, and the reply 303 says “Why?” Without more, the message 301 andthe reply 303 do not clearly indicate whether a positive or negativesentiment regarding the food and/or restaurant are implied.

Discussion will now turn to using machine learning models to ascertainpredicted responses to a message, such as the message 301. FIG. 4 showsa flow chart of a process for ascertaining a predicted response to amessage according to one or more aspects of the disclosure. Some or allof the steps of process 400 may be an algorithm and/or may be performedusing one or more computing devices as described herein. Moreover, someor all of the steps of the process 400 may be stored on non-transitorycomputer-readable media that, when executed, cause a computing device toperform all or some of the steps of the process 400.

In step 401, one or more machine learning models may be trained. Asdescribed further below, at least two machine learning models may beused: a first machine learning model to determine one or more groups ofemojis, and one or more second machine learning models to determine oneor more emoji from the one or more groups of emojis. Training themachine learning models may comprise training the machine learningmodels using data from one or more applications. For example, the firstmachine learning model may be trained to group emoji according tosentiment associated, such as sentiment according to one or more emojiof each group of emoji. Such training data may be tagged to aid thefirst machine learning model in detecting, for example, sarcasm,sadness, attempts at humor, or the like. The first machine learningmodel may be trained using a history of second responses to secondmessages in the application, such that, e.g., the subsets are determinedbased on sentiment similarity as determined by historical responses inthe application. As another example, the one or more second machinelearning models may be trained to select, from the groups of emojidetermined by the first machine learning model, a predicted response toa message based on a history of responses to one or more messages. Forinstance, a second machine learning model may be trained based on dataindicating how users typically respond to certain messages. As such, thefirst machine learning model and the one or more second machine learningmodels might differ at least in that the first machine learning modelmay be trained to group emoji (e.g., based on a degree of similarity, acommon sentiment, or the like) based on a message (e.g., a messageintended to be sent but not yet sent to an application), whereas the oneor more second machine learning models may be configured to select, fromthose groups and based on the message, one or more emoji.

In step 402, message data may be received. Message data may comprise anyinformation about one or more messages (e.g., a post, a text message, areply, or the like) in any application (e.g., a communicationsapplication). The message data may comprise textual content, such asproposed text for the message. The message to which the message datacorresponds may be intended to be sent, but not yet sent, to anapplication. For example, the message may be intended for posting in acommunication application. The message data need not be in anyparticular format. Receiving the message data may comprise receiving,from a user, textual content intended to be sent to an application.

In step 403, the message data may be processed to determine one or moresubsets of a plurality of emoji using a first machine learning model.The plurality of emoji may be processed to determine one or more subsetsof emoji corresponding to a different quantity of the plurality ofemoji. The first machine learning model may be trained based on thesentiment of the grouped emoji, as described in more detail above withrespect to step 401.

Processing the message data to determine subsets of the plurality ofemoji may comprise determining one or more subsets of the plurality ofemoji. The first machine learning model may be trained to process, basedon the message data, the plurality of emoji into subsets which may,e.g., represent different sentiments and/or different combinations ofsentiments. For example, a first subset may comprise emoji relating tonegative sentiment, whereas a second subset may comprise emoji relatingto sarcasm. Each subset may comprise a different number of differenttypes of emoji. For example, one subset may comprise two thumbs up andtwo thumbs down emoji, whereas another subset may comprise one thumbsup, one thumbs down, and one smiley face emoji. Each subset need notcomprise the same number of emojis, nor does each subset need tocomprise the same number of different types of emoji. One or more emojisof the plurality of emojis may be determined to be part of a subsetbased on other members of the subset. For example, for a subsetcomprising two thumbs down emoji and one thumbs up emoji, the system maybe configured to first determine whether two thumbs down emoji exist inthe plurality of emoji, and the system may then check whether a singlethumbs up emoji exists in the plurality of emoji.

Processing the message to determine the subsets of the plurality ofemoji may comprise determining a plurality of the same subset of theplurality of emoji. In this manner, the first machine learning model mayindicate a number of times that the same subset is repeated. Forexample, for a plurality of emoji comprising 20 thumbs down emoji and 10cat emoji, the first machine learning model may conclude that there are10 of the same subset, wherein the subset comprises two thumbs downemoji and one cat emoji. Accordingly, the first machine learning modelneed not group the plurality of emoji into excessively large subsets,but may instead represent the plurality of emoji as a plurality ofsubsets, with some subsets being repeated. Some subsets may comprisewildcards, such that any emoji may fill in a particular portion of asubset.

Processing the message data to determine the subsets of the plurality ofemoji may comprise weighting one or more of the emoji and/or one or moreof the subsets of the plurality of emoji. Different types and/orquantities of emoji may correspond to different strengths of sentiment.For example, one hundred thumbs down emoji may be weighted more stronglythan fifty thumbs up emojis. The weighting may be based on the strengthof the sentiment of one or more emoji. For example, a single angry faceemoji may be weighted more strongly than a single thumbs down emoji, asthe former may suggest a greater degree of negativity than the latter.Weighting the one or more of the emoji and/or the one or more of thesubsets of the plurality of emoji may comprise multiplying a number ofemoji by a value reflective of the strength of sentiment of the emoji.Such weighting may comprise multiplying the quantity of one or moreemoji by a constant. For example, an angry face emoji may be associatedwith a double multiplier, such that fifty angry face emoji may beweighted to be worth the same as one hundred thumbs down emoji.

Processing the message data to determine the subsets of the plurality ofemoji may comprise reordering the plurality of emoji and/or the subsetsof the plurality of emoji. Some machine learning models, such as thesecond machine learning model (discussed below), may make determinationsbased in part on the ordering of emoji (and/or subsets of emoji). Assuch, processing the message to determine the subsets of the pluralityof emoji may comprise arranging the subsets of the plurality of emoji ina particular order. For example, larger and/or stronger sentimentsubsets may be placed earlier in an order than smaller and/or weakersentiment subsets. As another example, if a subset is repeated in theplurality of emoji, it may be placed earlier in an order than a subsetthat is not repeated. The order may be predetermined based on, e.g., asubjective evaluation of the sentimental strength of one or more emoji.For example, a crying emoji may be considered to have a strongersentimental weight than a thumbs up emoji. Relatedly, the ordering ofemoji in a subset (e.g., first two thumbs up, then one thumbs down) maybe predetermined so as to standardize the subsets for subsequentanalysis.

In step 404, one or more second emoji may be selected, based on themessage data, using a second machine learning model. The one or moresecond emoji may be determined based on the subsets of emoji determinedusing the first machine learning model. The one or more second emoji maybe the most popular response of a plurality of different possibleresponses (e.g., a plurality of possible emoji responses). For example,the one or more second emoji may be determined by processing, using thesecond machine learning model, the message data and the subsets of theplurality of emoji to determine a sentiment of a message, then selectingone or more emoji which are likely responses to the sentiment of themessage. Determining the sentiment of the message in this manner maycomprise picking a most prevalent sentiment of the message and/or thesubsets of the plurality of emoji. The second machine learning model maybe different than the first machine learning model. Moreover, the secondmachine learning model may be trained differently than the first machinelearning model. For example, the second machine learning model may betrained based on a history of emoji responses to messages so as todetermine which emoji are likely to be responses to the message.

Determining the one or more second emoji in step 404 may comprisedetermining likely and/or unlikely response to the messages. Forexample, if the message and/or subsets of the plurality of emojiindicate sarcasm, then a response taking the message seriously may beundesirable. As another example, if the message and/or subsets of theplurality of emoji indicate sadness, then a response being comical maybe unwelcome. Thus, output from step 404 may comprise one or more secondemoji, a degree of confidence of the one or more second emoji (e.g., howlikely the second machine learning model(s) predict the emoji is to beused in response), one or more emoji that are likely to not be receivedin response to the message, and the like.

In step 405, indications of the one or more second emoji may betransmitted. The one or more second emoji may be transmitted in a mannerwhich indicates a degree of confidence (e.g., as a confidence value, apercentage, or the like) for the one or more second emoji. For example,the one or more second emoji may be transmitted by sending, to acomputing device, percentage values corresponding to at least one of theone or more second emoji. Transmitting the indications of the one ormore second emoji may comprise transmitting a plurality of unlikelyemoji responses. Transmitting the indications of the one or more secondemoji may comprise transmitting a count of the one or more second emoji.

In step 406, results of the response may be monitored. Users may respondto the response (e.g., in a communications application) positively ornegatively. Based on those further responses, the first machine learningmodel and/or the second machine learning model may be further trained.

One or more aspects discussed herein may be embodied in computer-usableor readable data and/or computer-executable instructions, such as in oneor more program modules, executed by one or more computers or otherdevices as described herein. Generally, program modules includeroutines, programs, objects, components, data structures, and the like.that perform particular tasks or implement particular abstract datatypes when executed by a processor in a computer or other device. Themodules may be written in a source code programming language that issubsequently compiled for execution, or may be written in a scriptinglanguage such as (but not limited to) HTML or XML. The computerexecutable instructions may be stored on a computer readable medium suchas a hard disk, optical disk, removable storage media, solid-statememory, RAM, and the like. As will be appreciated by one of skill in theart, the functionality of the program modules may be combined ordistributed as desired in various embodiments. In addition, thefunctionality may be embodied in whole or in part in firmware orhardware equivalents such as integrated circuits, field programmablegate arrays (FPGA), and the like. Particular data structures may be usedto more effectively implement one or more aspects discussed herein, andsuch data structures are contemplated within the scope of computerexecutable instructions and computer-usable data described herein.Various aspects discussed herein may be embodied as a method, acomputing device, a system, and/or a computer program product.

Although the present invention has been described in certain specificaspects, many additional modifications and variations would be apparentto those skilled in the art. In particular, any of the various processesdescribed above may be performed in alternative sequences and/or inparallel (on different computing devices) in order to achieve similarresults in a manner that is more appropriate to the requirements of aspecific application. It is therefore to be understood that the presentinvention may be practiced otherwise than specifically described withoutdeparting from the scope and spirit of the present invention. Thus,embodiments of the present invention should be considered in allrespects as illustrative and not restrictive. Accordingly, the scope ofthe invention should be determined not by the embodiments illustrated,but by the appended claims and their equivalents.

What is claimed is:
 1. A first computing device comprising: one or moreprocessors; and memory storing instructions that, when executed by theone or more processors, cause the first computing device to: determine afirst trained machine learning model, wherein the first trained machinelearning model was trained, using first training data comprising ahistory of messages in one or more of a plurality of applications thateach comprise a plurality of different emoji corresponding to one ormore different sentiments, to determine subsets comprising at least twodifferent emojis of a plurality of emojis by modifying, based on thefirst training data, one or more first weights of first nodes of a firstartificial neural network; determine a second trained machine learningmodel, wherein the second trained machine learning model was trained,using second training data comprising a history of responses to one ormore past messages of the history of messages in the one or more of theplurality of applications, to select emojis, from the plurality ofemojis, that correspond to one or more predicted responses to one ormore messages by modifying, based on the second training data, one ormore second weights of second nodes of a second artificial neuralnetwork; receive data corresponding to a message, wherein the message isintended to be sent but has not yet been sent to an applicationexecuting on a second computing device; process, using the first machinelearning model, the message to determine one or more subsets comprisingat least two different emojis of the plurality of emojis, wherein atleast one of the one or more subsets corresponds to at least twodifferent emoji types; select, using the one or more second machinelearning models and based on the message, one or more second emojis fromthe one or more subsets of the plurality of emojis, wherein the one ormore second emojis comprise predicted responses to the message; andtransmit the one or more second emojis.
 2. The first computing device ofclaim 1, wherein the application is a messaging application, wherein themessage is intended to be posted in the messaging application.
 3. Thefirst computing device of claim 1, wherein the instructions, whenexecuted by the one or more processors, cause the first computing deviceto process the message by causing the first computing device to process,using the first machine learning model, the message to determine the oneor more subsets of the plurality of emojis by causing the firstcomputing device to: weight each of the plurality of emojis based on: aquantity of the plurality of emojis that correspond to an emoji type;and a sentiment corresponding to the emoji type.
 4. The first computingdevice of claim 1, wherein a first emoji type of the at least twodifferent emoji types corresponds to a positive reaction, and wherein asecond emoji type of the at least two different emoji types correspondsto a negative reaction.
 5. The first computing device of claim 1,wherein at least one of the one or more subsets further corresponds to:a first quantity of a first emoji type of the at least two differentemoji types, and a second quantity of a second emoji type of the atleast two different emoji types.
 6. The first computing device of claim1, wherein the first training data further comprises a history of secondresponses to second messages in one or more applications.
 7. The firstcomputing device of claim 1, wherein the second training data furthercomprises a history of second responses from one or more secondapplications different than the application.
 8. The first computingdevice of claim 1, wherein the instructions, when executed by the one ormore processors, cause the first computing device to transmit the one ormore second emojis by transmitting a confidence value associated witheach of the one or more second emojis.
 9. The first computing device ofclaim 1, wherein the instructions, when executed by the one or moreprocessors, cause the first computing device to process the message bycausing the first computing device to: determine that a first emoji ofthe plurality of emojis belongs to a first subset of the one or moresubsets based on one or more second emojis of the plurality of emojis.10. The first computing device of claim 1, wherein the instructions,when executed by the one or more processors, cause the first computingdevice to transmit the one or more second emojis by causing the firstcomputing device to: transmit a count of the one or more second emojis.11. The first computing device of claim 1, wherein the message comprisesone or more emojis.
 12. A method comprising: determining a first trainedmachine learning model, wherein the first trained machine learning modelwas trained, using first training data comprising a history of messagesin one or more of a plurality of applications that each comprise aplurality of different emoji corresponding to one or more differentsentiments, to determine subsets comprising at least two differentemojis of a plurality of emojis by modifying, based on the firsttraining data, one or more first weights of first nodes of a firstartificial neural network; determining a second trained machine learningmodel, wherein the second trained machine learning model was trained,using second training data comprising a history of responses to one ormore past messages of the history of messages in the one or more of theplurality of applications, to select emojis, from the plurality ofemojis, that correspond to one or more predicted responses to one ormore messages by modifying, based on the second training data, one ormore second weights of second nodes of a second artificial neuralnetwork; receiving, by a first computing device, data corresponding to afirst message, wherein the first message is intended to be sent but hasnot yet been sent to a first application, of the plurality ofapplications, executing on a second computing device; processing, by thefirst computing device and using the first machine learning model, thefirst message to determine one or more subsets comprising at least twodifferent emojis of the plurality of emojis, wherein at least one of theone or more subsets corresponds to at least two different emoji types;selecting, by the first computing device and using the one or moresecond machine learning models and based on the first message, one ormore second emojis from the one or more subsets of the plurality ofemojis; and transmitting, by the first computing device, the one or moresecond emojis.
 13. The method of claim 12, wherein the first applicationis a messaging application, wherein the first message is intended to beposted in the first application.
 14. The method of claim 12, whereinprocessing the first message comprises: weighting each of the pluralityof emojis based on: a quantity of the plurality of emojis thatcorrespond to an emoji type; and a sentiment corresponding to the emojitype.
 15. The method of claim 12, wherein a first emoji type of the atleast two different emoji types corresponds to a positive reaction, andwherein a second emoji type of the at least two different emoji typescorresponds to a negative reaction.
 16. The method of claim 12, whereinat least one of the one or more subsets further corresponds to: a firstquantity of a first emoji type of the at least two different emojitypes, and a second quantity of a second emoji type of the at least twodifferent emoji types.
 17. The method of claim 12, wherein transmittingthe one or more second emojis comprises transmitting a confidence valueassociated with each of the one or more second emojis.
 18. A methodcomprising: determining a first trained machine learning model, whereinthe first trained machine learning model was trained, using firstcomputing device and using first training data comprising a history ofmessages in one or more of a plurality of applications that eachcomprise a plurality of different emoji corresponding to one or moredifferent sentiments, to determine subsets comprising at least twodifferent emojis of a plurality of emojis that correspond to at leasttwo different emojis by modifying, based on the first training data, oneor more first weights of first nodes of a first artificial neuralnetwork; determining a second trained machine learning model, whereinthe second trained machine learning model was trained, by the firstcomputing device and using second training data comprising a history ofresponses to one or more past messages of the history of messages in theone or more of the plurality of applications, to select emojis, from theplurality of emojis, that correspond to one or more predicted responsesto one or more messages by modifying, based on the second training data,one or more second weights of second nodes of a second artificial neuralnetwork; receiving, by the first computing device and from a thirdcomputing device, textual content of a first message, wherein the firstmessage is intended to be posted but has not yet been posted to amessaging application, of the plurality of applications, executing on asecond computing device; processing, by the first computing device andusing the first machine learning model, the textual content of the firstmessage to determine one or more subsets comprising at least twodifferent emojis of the plurality of emojis; determining, by the firstcomputing device and using the one or more second machine learningmodels and based on the textual content of the first message, one ormore confidence values corresponding to one or more second emojisselected from the one or more subsets of the plurality of emojis,wherein each confidence value of the one or more confidence valuesindicates a likelihood that the one or more second emojis will bereceived as a response to the first message; and transmitting, by thefirst computing device, the one or more confidence values to the thirdcomputing device.
 19. The method of claim 18, wherein processing thefirst message comprises: weighting each of the plurality of emojis basedon: a quantity of the plurality of emojis that correspond to an emojitype; and a sentiment corresponding to the emoji type.
 20. The method ofclaim 18, wherein at least one of the one or more subsets furthercorresponds to: a first quantity of a first emoji type of the at leasttwo different emoji types, and a second quantity of a second emoji typeof the at least two different emoji types.